home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-meyer-demandrouting-02.txt < prev    next >
Text File  |  1993-08-24  |  64KB  |  1,790 lines

  1. Network Working Group                                         G.M. Meyer
  2. Internet Draft                                            Spider Systems
  3. Expires Feb 23, 1993                                            Aug 1993
  4.  
  5.  
  6.         Routing over Demand Circuits on Wide Area Networks - RIP
  7.  
  8.  
  9. Status of this Memo
  10.  
  11.    This memo is being distributed to members of the Internet community
  12.    in order to solicit their reactions to the proposals contained in it.
  13.  
  14.    This document is an Internet Draft.  Internet Drafts are working
  15.    documents of the Internet Engineering Task Force (IETF), its Areas,
  16.    and its Working Groups.  Note that other groups may also distribute
  17.    working documents as Internet Drafts.  Internet Drafts are draft
  18.    documents valid for a maximum of six months.  Internet Drafts may be
  19.    updated, replaced, or obsoleted by other documents at any time.  It
  20.    is not appropriate to use Internet Drafts as reference material or to
  21.    cite them other than as a ``working draft'' or ``work in progress.''
  22.    Please check the 1id-abstracts.txt listing contained in the
  23.    internet-drafts Shadow Directories on nic.ddn.mil, nnsc.nsf.net,
  24.    nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au to learn the
  25.    current status of any Internet Draft.
  26.  
  27.    Distribution of this memo is unlimited.
  28.  
  29. Abstract
  30.  
  31.    Running routing protocols on connection oriented Public Data
  32.    Networks, for example X.25 packet switched networks or ISDN, can be
  33.    expensive if the standard form of periodic broadcasting of routing
  34.    information is adhered to.  The high cost arises because a connection
  35.    has to all practical intents and purposes be kept open to every
  36.    destination to which routing information is to be sent, whether or
  37.    not it is being used to carry user data.
  38.  
  39.    Routing information may also fail to be propagated if the number of
  40.    destinations to which the routing information is to be sent exceeds
  41.    the number of channels available to the router on the Wide Area
  42.    Network (WAN).
  43.  
  44.    This memo defines a generalized modification which can be applied to
  45.    Bellman-Ford (or distance vector) algorithm information broadcasting
  46.    protocols, for example IP RIP, Netware RIP or Netware SAP, which
  47.    overcomes the limitations of the traditional methods described above.
  48.    The routing protocols support a purely triggered update mechanism on
  49.  
  50.  
  51.  
  52. Meyer                                                           [Page 1]
  53.  
  54. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  55.  
  56.  
  57.    demand circuits on WANs.  The protocols run UNMODIFIED on LANs or
  58.    fixed point-to-point links.
  59.  
  60.    Routing information is sent on the WAN when the routing database is
  61.    modified by new routing information received from another interface.
  62.    When this happens a (triggered) update is sent to a list of
  63.    destinations on other WAN interfaces.  Because routing protocols are
  64.    datagram based they are not guaranteed to be received by the peer
  65.    router on the WAN.  An acknowledgement and retransmission mechanism
  66.    is provided to ensure that routing updates are received.
  67.  
  68.    The WAN circuit manager advises the routing applications on the
  69.    reachability and non-reachability of destinations on the WAN.
  70.  
  71. Acknowledgements
  72.  
  73.    I would like to thank colleagues at Spider, in particular Richard
  74.    Edmonstone, Tom Daniel and Alam Turland, Yakov Rekhter (IBM), Martha
  75.    Steenstrup (BBN), and members of the RIP-2 work group of the IETF for
  76.    stimulating discussions and comments which helped to clarify this
  77.    memo.
  78.  
  79. Conventions
  80.  
  81.    The following language conventions are used in the items of
  82.    specification in this document:
  83.  
  84.    o  MUST -- the item is an absolute requirement of the specification.
  85.       MUST is only used where it is actually required for interopera-
  86.       tion, not to try to impose a particular method on implementors
  87.       where not required for interoperability.
  88.  
  89.    o  SHOULD -- the item should be followed for all but exceptional cir-
  90.       cumstances.
  91.  
  92.    o  MAY or optional -- the item is truly optional and may be followed
  93.       or ignored according to the needs of the implementor.
  94.  
  95.       The words "should" and "may" are also used, in lower case, in
  96.       their more ordinary senses.
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. Meyer                                                           [Page 2]
  109.  
  110. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  111.  
  112.  
  113.  
  114.                           Table of Contents
  115.  
  116.       1. Introduction ...........................................  4
  117.  
  118.       2. Running a routing Protocol on the WAN ..................  6
  119.           2.1. Overview .........................................  6
  120.           2.2. Presumption of Reachability ......................  8
  121.           2.3. WAN Router list ..................................  8
  122.           2.4. Triggered Updates and Unreliable Delivery ........  9
  123.           2.5. Guaranteeing delivery of Routing Updates .........  9
  124.           2.6. The Routing Database ............................. 10
  125.           2.7. New Packet Types ................................. 11
  126.           2.8. Fragmentation .................................... 13
  127.           2.9. Preventing Queue Overload ........................ 14
  128.  
  129.       3. IP Routing Information Protocol Version 1 .............. 15
  130.  
  131.       4. IP Routing Information Protocol Version 2 .............. 18
  132.  
  133.       5. Netware Routing Information Protocol ................... 19
  134.  
  135.       6. Netware Service Advertising Protocol ................... 23
  136.  
  137.       7. Timers ................................................. 27
  138.           7.1. Database Timer ................................... 27
  139.           7.2. Retransmission Timer ............................. 28
  140.           7.3. Reassembly Timer ................................. 29
  141.  
  142.       8. Implementation Considerations ...........................30
  143.  
  144.       9. Security Considerations ................................ 31
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164. Meyer                                                           [Page 3]
  165.  
  166. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  167.  
  168.  
  169. 1. Introduction
  170.  
  171.    Routers are used on connection oriented networks, such as X.25 packet
  172.    switched networks and ISDN networks, to allow potential connectivity
  173.    to a large number of remote destinations.  Circuits on the Wide Area
  174.    Network (WAN) are established on demand and are relinquished when the
  175.    traffic subsides.  Depending on the application, the connection
  176.    between any two sites for user data might actually be short and rela-
  177.    tively infrequent.
  178.  
  179.    Practical experience of routing shows that periodic 'broadcasting' of
  180.    routing updates on the WAN is unsatisfactory on several counts:
  181.  
  182.    o  Running a routing protocol like RIP is expensive if the standard
  183.       form of transmitting routing information to every next hop router
  184.       every 30 seconds is adhered to.  The more routers there are wish-
  185.       ing to exchange information the worse the problem.  If there are N
  186.       routers on the WAN, N * (N - 1) routing updates are sent over N *
  187.       (N - 1)/2 connections every broadcast period.
  188.  
  189.       The expense arises because a circuit has to be kept open to each
  190.       destination to which routing information is to be sent.  Routing
  191.       updates are sufficiently frequent that little benefit is obtain-
  192.       able on most networks by attempting to set up a call purely for
  193.       the duration of the routing update. (There are often minimum call
  194.       charges, or there is a charge to set up a call irrespective of
  195.       what data is sent.)
  196.  
  197.       The option of reducing the 'broadcast' frequency, while reducing
  198.       the cost, would make the system less responsive.
  199.  
  200.    o  The number of networks to be connected (N) on the WAN can easily
  201.       exceed the number of simultaneous calls (M) which the interface
  202.       can support.  If this happens the routing 'broadcast' will only
  203.       reach M next hop routers, and (N - M) next hop routers will not
  204.       receive the routing update.
  205.  
  206.       A basic rate ISDN interface can support 2 simultaneous calls, and
  207.       even the number of logical channels most users subscribe to on an
  208.       X.25 network is not large.  There is no fundamental reason why
  209.       routing protocols should restrict the user to routing between so
  210.       few sites.
  211.  
  212.    o  Since there is no broadcast facility on the WAN, 'broadcasting' of
  213.       routing information actually consists of sending the updates
  214.       separately to all known locations.  This means that N routing
  215.       updates are queued for transmission on the WAN link (in addition
  216.       to any data which might be queued).
  217.  
  218.  
  219.  
  220. Meyer                                                           [Page 4]
  221.  
  222. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  223.  
  224.  
  225.       Routers take a pragmatic view on queuing datagrams for the WAN.
  226.       If the queue length gets too long, so that datagrams at the end of
  227.       the queue would take too long be transmitted in a reasonable time
  228.       (say 1 to 2 seconds) the router may start discarding them.  On an
  229.       X.25 network, with slow line speeds (perhaps 9600 baud), it may
  230.       not take too many routing updates to fulfill this condition if the
  231.       link is also actively being used to carry user data.
  232.  
  233.    This memo addresses all the above problems.
  234.  
  235.    The approach taken is to modify the routing protocols so as to send
  236.    information on the WAN only when there has been an update to the
  237.    routing database OR a change in the reachability of a next hop router
  238.    is indicated by the task which manages connections on the WAN.
  239.  
  240.    Because datagrams are not guaranteed to get through on all WAN media,
  241.    an acknowledgement and retransmission system is required to provide
  242.    reliability.
  243.  
  244.    This memo describes the modifications required for Bellman-Ford (or
  245.    distance vector) algorithm information broadcasting protocols, such
  246.    as IP RIP [1,2] or Netware RIP and SAP [3] on the WAN.  The protocols
  247.    run unmodified on Local Area Networks (LANs) or fixed point-to-point
  248.    links, and so interoperate transparently with implementations adher-
  249.    ing to the original specifications.
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276. Meyer                                                           [Page 5]
  277.  
  278. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  279.  
  280.  
  281. 2. Running Routing Protocols on the WAN
  282.  
  283. 2.1 Overview
  284.  
  285.    Multiprotocol routers are used on connection oriented Wide Area Net-
  286.    works (WANs), such as X.25 packet switched networks and ISDN net-
  287.    works, to interconnect LANs.  By using the multiplexing properties of
  288.    the underlying WAN technology, several LANs can be interconnected
  289.    simultaneously through a single physical interface on the router.
  290.  
  291.    A circuit manager provides an interface between the connectionless
  292.    network layers (IP, IPX, CLNP etc) and the connection oriented WAN
  293.    (X.25 or ISDN).  Figure 1 shows a schematic representative stack
  294.    showing the relationship between routing protocols, the network
  295.    layers, the circuit manager and the connection oriented WAN.
  296.  
  297.  
  298.              --------------           ---------  ---------
  299.              |    RIP     |           |  RIP  |  |  SAP  |
  300.              --------------           ---------  ---------
  301.                    |                      |          |
  302.              --------------               |          |
  303.              |    UDP     |               |          |
  304.              --------------               |          |
  305.                    |                      |          |
  306.              --------------             ----------------
  307.              |    IP      |             |     IPX      |
  308.              --------------             ----------------
  309.                    |                           |
  310.              -------------------------------------------
  311.              |             Circuit Manager             |
  312.              -------------------------------------------
  313.                               ||||||||||
  314.                               ||||||||||
  315.                       ---------------------------
  316.                       |   Connection Oriented   |
  317.                       |        WAN stack        |
  318.                       ---------------------------
  319.  
  320.      A WAN circuit manager will support a variety of network layer  pro-
  321.      tocols,  on  its  upper  interface.  On its lower interface, it may
  322.      support one or more subnetworks.  A subnetwork may support a number
  323.      of Virtual Circuits.
  324.  
  325.  
  326.             Figure 1.   Representative Multiprotocol Router stack
  327.  
  328.  
  329.  
  330.  
  331.  
  332. Meyer                                                           [Page 6]
  333.  
  334. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  335.  
  336.  
  337.    The router has a translation table which relates the network layer
  338.    address of the next hop router to the physical address used to estab-
  339.    lish a Virtual Circuit (VC) to it.  Datagrams may be encapsulated in
  340.    a header to distinguish the network layer protocol [5].
  341.  
  342.    The circuit manager takes datagrams from the connectionless network
  343.    layer protocols and (if one is not currently available) opens a VC to
  344.    the next hop router.  A VC can carry all traffic between two end-
  345.    point routers for a given network layer protocol (or with appropriate
  346.    encapsulation all network layer protocols).  An idle timer is used to
  347.    close the VC when the datagrams stop arriving at the circuit manager.
  348.  
  349.    Running routing protocols on the WAN has traditionally consisted of
  350.    making small modifications to the methods used on LANs.  Where rout-
  351.    ing information would be broadcast periodically on a LAN interface,
  352.    it is converted to a series of periodic updates sent to a list of
  353.    addresses on the WAN.
  354.  
  355.    This memo targets two areas:
  356.  
  357.    o  Eliminating the overkill inherent in periodic transmission of
  358.       routing updates.
  359.  
  360.    o  Overcoming the bandwidth limitations on the WAN: the number of
  361.       simultaneous VCs to next hop routers and restricted data
  362.       throughput which the WAN link can support.
  363.  
  364.    The first of these is overcome by transmitting routing updates
  365.    (called routing responses) only when required:
  366.  
  367.    o  Firstly when a specific request for a routing update has been
  368.       received.
  369.  
  370.    o  Secondly when the routing database is modified by new information
  371.       from another interface.
  372.  
  373.       Update information received in this way is not normally propagated
  374.       on other interfaces immediately, but is delayed for a few seconds
  375.       to allow information from several updates to be grouped.
  376.  
  377.    o  Thirdly when the circuit manager indicates that a destination has
  378.       changed from an unreachable (circuit down) to a reachable (circuit
  379.       up) state.
  380.  
  381.    Because of the inherent unreliability of a datagram based system,
  382.    both routing requests and routing responses require acknowledgement,
  383.    and retransmission in the event of NOT receiving an acknowledgement.
  384.  
  385.  
  386.  
  387.  
  388. Meyer                                                           [Page 7]
  389.  
  390. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  391.  
  392.  
  393.    To overcome the bandwidth limitations the routing application can
  394.    perform a form of self-imposed flow control, to spread routing
  395.    updates out over a period of time.
  396.  
  397. 2.2 Presumption of Reachability
  398.  
  399.    If a routing update is received from a next hop router on the WAN,
  400.    entries in the update are thereafter always considered to be reach-
  401.    able, unless proven otherwise:
  402.  
  403.    o  If in the normal course of routing datagrams, the circuit manager
  404.       fails to establish a connection to the next hop router, it noti-
  405.       fies the routing application that the next hop router is not
  406.       reachable through an internal circuit down message.
  407.  
  408.       The routing application then goes through a process of timing out
  409.       database entries to make them unreachable in the routing sense.
  410.  
  411.    o  If the circuit manager is subsequently able to establish a connec-
  412.       tion to the next hop router, it will notify the routing applica-
  413.       tion that the next hop router is reachable through an internal
  414.       circuit up message.
  415.  
  416.       The routing application will then exchange messages with the next
  417.       hop router so as to re-prime their respective routing databases
  418.       with up-to-date information.
  419.  
  420.    Handling of circuit up and circuit down messages requires that the
  421.    circuit manager takes responsibility for establishing (or re-
  422.    establishing) the connection in the event of a next hop router becom-
  423.    ing unreachable.  A description of the processes the circuit manager
  424.    adopts to perform this task is outside the scope of this memo.
  425.  
  426. 2.3 WAN Router list
  427.  
  428.    The routing task MAY be provided with a list of routers to send rout-
  429.    ing updates to on the WAN.  It will comprise of the logical addresses
  430.    of next hop routers for which the router has a logical to physical
  431.    address mapping.  Entries in the list SHOULD be categorized (on a
  432.    per-peer basis) as follows:
  433.  
  434.    o  Running the standard routing protocol, namely transmitting updates
  435.       periodically with the packet formats used in LAN broadcasts.
  436.  
  437.       This option is supported to allow interoperability with existing
  438.       routing implementations, and might also be appropriate if some of
  439.       the destinations are using Permanent Virtual Circuits (PVCs)
  440.       rather than SVCs.
  441.  
  442.  
  443.  
  444. Meyer                                                           [Page 8]
  445.  
  446. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  447.  
  448.  
  449.    o  Running the triggered update routing protocol proposed in this
  450.       memo.
  451.  
  452.    Omitting an address from both of these categories is equivalent to
  453.    not running the routing protocols.
  454.  
  455.    If routing packets arrive from a destination not supporting the
  456.    appropriate variant they MUST be discarded.
  457.  
  458. 2.4 Triggered Updates and Unreliable Delivery
  459.  
  460.    If triggered update information is sent to next hop routers on the
  461.    WAN only once it can fail to arrive for one of the following reasons:
  462.  
  463.    o  A free VC resource might not be available, because of a restricted
  464.       number of X.25 logical channels or ISDN B-channels.
  465.  
  466.    o  The transmit queue might be full - requiring the datagram to be
  467.       discarded.
  468.  
  469.    o  The VC might be pre-empted (in favour of establishing a VC to
  470.       another next hop router) while the datagram is in a queue, result-
  471.       ing in the queue being flushed and the datagram discarded.
  472.  
  473.    o  In cases where the method of transport is not guaranteed, for
  474.       example with PPP where there is no acknowledgement and retransmis-
  475.       sion of HDLC frames, a corrupted frame will result in the loss of
  476.       the datagram.
  477.  
  478. 2.5 Guaranteeing delivery of Routing Updates
  479.  
  480.    To guarantee delivery of routing updates on the WAN an acknowledge-
  481.    ment and retransmission scheme MUST be used:
  482.  
  483.    o  Send a routing update to a next hop router on the WAN.
  484.  
  485.    o  The other router responds with an acknowledgement packet.
  486.  
  487.       The original router receives the acknowledgement.
  488.  
  489.    o  Otherwise the original router retransmits the update until an ack-
  490.       nowledgement is received.
  491.  
  492.       Retransmission timer values are covered in section 7.
  493.  
  494.       In cases where the routing database is modified before an ack-
  495.       nowledgement is received a new routing update with an updated
  496.       sequence number is sent out.  If an acknowledgement for the old
  497.  
  498.  
  499.  
  500. Meyer                                                           [Page 9]
  501.  
  502. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  503.  
  504.  
  505.       routing update is received it is ignored.
  506.  
  507.    o  A router only updates its routing database when it receives a com-
  508.       plete update, which may consist of several fragments.  Each frag-
  509.       ment is individually acknowledged.
  510.  
  511.    The above mechanism caters for cases where the datagram is lost
  512.    because of a frame error or is discarded because of an over-full
  513.    queue.  The routing update and acknowledgement will eventually both
  514.    get through.
  515.  
  516.    In cases where the circuit manager cannot establish a connection, a
  517.    mechanism is provided to allow the circuit manager to inform the
  518.    routing task of the failure to make a connection so that it can
  519.    suppress retransmissions until a circuit becomes available.
  520.  
  521. 2.6 The Routing Database
  522.  
  523.    A requirement of using triggered updates for propagating routing
  524.    information is that NO routing information ever gets LOST or DIS-
  525.    CARDED.
  526.  
  527.    The routing database MUST adopt one of the following strategies:
  528.  
  529.    o  It must keep ALL alternative routing information it learns from
  530.       any routing updates from the LAN and the WAN, so that if the best
  531.       route disappears an alternative route (if available) can replace
  532.       it as the new best route.
  533.  
  534.    o  If the amount of memory this consumes is problematic the routing
  535.       application must keep SOME alternative routing information - say a
  536.       best route and two alternatives.
  537.  
  538.       If the router ever has to discard routing information about a
  539.       route it should note the fact.   If the routes that have been kept
  540.       disappear because they have become unreachable, the router MUST
  541.       issue a request on all interfaces to try and obtain discarded
  542.       alternatives.
  543.  
  544.       It is recommended that the request is issued BEFORE all routes to
  545.       a destination have been lost.
  546.  
  547.    Entries in the routing database can either be permanent or temporary.
  548.    Entries learned from broadcasts on LANs are temporary. They will
  549.    expire if not periodically refreshed by further broadcasts.
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. Meyer                                                          [Page 10]
  557.  
  558. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  559.  
  560.  
  561.    Entries learned from a triggered response on the WAN are 'permanent'.
  562.    They MUST not time out in the normal course of events.  The entries
  563.    state MUST be changed to 'temporary' by the following events:
  564.  
  565.    o  The arrival of a routing update containing the entry set to
  566.       unreachable.
  567.  
  568.       The normal hold down timer MUST be started, after which the entry
  569.       disappears from the routing database.
  570.  
  571.    o  The arrival of a routing update with the entry absent.
  572.  
  573.       If the hold down timer is not already running, the entry MUST be
  574.       set to unreachable and the hold down timer started.
  575.  
  576.    o  A message sent from the circuit manager, to indicate that it
  577.       failed to make a connection in normal running.
  578.  
  579.       The routing table MUST be scanned for all routes via that next hop
  580.       router.  Aging of these routing entries MUST commence.  If the
  581.       aging timer expires the entry MUST be set to unreachable and the
  582.       hold down timer started.  If the hold down timer expires the entry
  583.       disappears from the routing database.
  584.  
  585.    o  If the interface goes down, the circuit manager should indicate
  586.       that all circuits on that interface have gone down.
  587.  
  588.    Database timer values are covered in section 7.
  589.  
  590. 2.7 New Packet Types
  591.  
  592.    To support triggered updates, three new packet types MUST be sup-
  593.    ported:
  594.  
  595.    TRIGGERED REQUEST
  596.  
  597.              A request to the responding system to send all appropriate
  598.              elements in its routing database.
  599.  
  600.              A triggered request is retransmitted at periodic intervals
  601.              until a triggered response is received.
  602.  
  603.              Routing requests are transmitted in the following cir-
  604.              cumstances:
  605.  
  606.              o  Firstly when the router is powered on.
  607.  
  608.              o  Secondly when the circuit manager indicates a
  609.  
  610.  
  611.  
  612. Meyer                                                          [Page 11]
  613.  
  614. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  615.  
  616.  
  617.                 destination has been in an unreachable (circuit down)
  618.                 state for an extended period and changes to a reachable
  619.                 (circuit up) state.
  620.  
  621.              o  Thirdly in the event of all routing update fragments
  622.                 failing to arrive within a set period.
  623.  
  624.              o  It may also send triggered requests at other times to
  625.                 compensate for discarding non-optimal routing informa-
  626.                 tion.
  627.  
  628.    TRIGGERED RESPONSE
  629.  
  630.              A message containing all appropriate elements of the rout-
  631.              ing database.  An appropriate element is an entry NOT
  632.              learned from the interface to which the routing information
  633.              is being sent out.  This is known as "split horizon".
  634.  
  635.              Stability is improved by adding "poisoned reverse" on
  636.              routes learned from a destination.  This consists of also
  637.              including some routes learned from a destination in routing
  638.              updates sent back to that destination, but setting the
  639.              routes as unreachable.  A route is only poisoned if it is
  640.              the best route (rather than an inferior alternative route)
  641.              in the database.
  642.  
  643.              A triggered response message may be sent in response to a
  644.              triggered request, or it may be an update message issued
  645.              because of a change in the routing database.
  646.  
  647.              A triggered response message MUST be sent in response to a
  648.              triggered request message even if there are no routes to
  649.              propagate.  This would be the case for a host which had a
  650.              WAN interface only, but which wished to run the triggered
  651.              update protocol.
  652.  
  653.              A triggered response is retransmitted at periodic intervals
  654.              until a triggered acknowledgement is received.
  655.  
  656.    TRIGGERED ACKNOWLEDGEMENT
  657.  
  658.              A message sent in response to every triggered response
  659.              packet received.
  660.  
  661.    Triggered response and triggered acknowledgement packets MUST contain
  662.    additional fields for a sequence number, fragment number and number
  663.    of fragments.
  664.  
  665.  
  666.  
  667.  
  668. Meyer                                                          [Page 12]
  669.  
  670. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  671.  
  672.  
  673.    If a triggered request or response is not acknowledged after 10
  674.    retransmissions, routes to the destination should be marked as
  675.    unreachable for the duration of a hold down timer before being
  676.    deleted.
  677.  
  678.    The destination should then be polled at a lower frequency using
  679.    triggered request packets.  When a triggered response is received,
  680.    the router should prime the next hop router my sending its routing
  681.    database through triggered response packets.
  682.  
  683.    Strictly speaking polling should occur indefinitely to guarantee
  684.    database integrity.  However the administrator MAY wish the router to
  685.    cease polling after a few attempts believing that the lack of
  686.    response is due to a mis-configuration of the next hop router.  The
  687.    destination should be marked as NOT supporting the mechanism and no
  688.    further routing messages should be sent to that destination.
  689.  
  690.    Before marking the destination as not supporting the mechanism, at
  691.    least 5 triggered request polls (without acknowledgement) should be
  692.    sent.
  693.  
  694.    If a destination marked as not supporting the mechanism, subsequently
  695.    sends a valid 'triggered' message, the destination should be marked
  696.    as supporting the mechanism once more (to allow for the next hop
  697.    router's configuration being changed).  It should be sent a triggered
  698.    request and a triggered response to obtain and propagate up-to-date
  699.    routing information.
  700.  
  701. 2.8 Fragmentation
  702.  
  703.    If a routing update is sufficiently large, the information MUST be
  704.    fragmented over several triggered response packets:
  705.  
  706.    o  Each fragment MUST be individually acknowledged with a triggered
  707.       acknowledgement packet.
  708.  
  709.       The sender of the routing update MUST periodically retransmit
  710.       fragments which have not been acknowledged (or until the destina-
  711.       tion is marked as not supporting the mechanism).
  712.  
  713.    o  A router receiving fragments MUST re-assemble them before updating
  714.       its routing database.
  715.  
  716.    o  If all fragments are not received within four times the retransmit
  717.       period, they MUST be discarded.
  718.  
  719.       A triggered request packet MUST then be sent to the originator of
  720.       the routing update.
  721.  
  722.  
  723.  
  724. Meyer                                                          [Page 13]
  725.  
  726. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  727.  
  728.  
  729.       On receiving the triggered request packet, the originator of the
  730.       routing update MUST retransmit ALL fragments.
  731.  
  732.    o  If a fragment with an updated sequence number is received, ALL
  733.       fragments with the earlier sequence number MUST be discarded.
  734.  
  735.       An updated sequence number is defined as any sequence number that
  736.       is different.  There is no concept of the value of the sequence
  737.       number conveying its age.
  738.  
  739.    Fragmentation timer values are covered in section 7.
  740.  
  741. 2.9 Preventing Queue Overload
  742.  
  743.    In order to prevent too many routing messages being queued at a WAN
  744.    interface, the routing task MAY operate a scheme whereby 'broadcast-
  745.    ing' of a triggered request or triggered response to a WAN interface
  746.    is staggered.  All routing requests or routing responses are not sent
  747.    to ALL next hop routers on the interface in a single batch:
  748.  
  749.    o  The routing task should limit the number of outstanding triggered
  750.       request messages for which a triggered response has not been
  751.       received.
  752.  
  753.    o  The routing task should limit the number of outstanding triggered
  754.       response messages for which a triggered acknowledgement has not
  755.       been received.
  756.  
  757.    As outstanding messages are appropriately acknowledged, further mes-
  758.    sages can be sent out to other next hop routers, until all next hop
  759.    routers have been sent the message and have acknowledged it.
  760.  
  761.    The maximum number of outstanding messages transmitted without ack-
  762.    nowledgement is a function of the link speed and the number of other
  763.    routing protocols operating the triggered update mechanism.
  764.  
  765.    Messages should always be acknowledged immediately (even if it causes
  766.    the limit to be exceeded), since a connection is almost certainly
  767.    available.  This has the potential benefit of allowing the VC to
  768.    close sooner (on its idle timer).
  769.  
  770.    Sending all triggered request fragments to a destination at once is
  771.    also beneficial.
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780. Meyer                                                          [Page 14]
  781.  
  782. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  783.  
  784.  
  785. 3. IP Routing Information Protocol Version 1
  786.  
  787.    This section should be read in conjunction with reference [1].
  788.  
  789.    IP RIP is a UDP-based protocol which generally sends and receives
  790.    datagrams on UDP port number 520.
  791.  
  792.    To support the mechanism outlined in this proposal the packet format
  793.    for RIP version 1 [1] is modified as shown in Figure 2.
  794.  
  795.    Every Routing Information Protocol datagram contains the following:
  796.  
  797.    COMMAND   Commands supported in RIP Version 1 are: request (1),
  798.              response (2), traceon (3), traceoff (4), SUN reserved (5).
  799.              The fields sequence number, fragment number and number of
  800.              fragments MUST NOT be included in packets with these com-
  801.              mand values.
  802.  
  803.              The following new commands (with values in brackets) are
  804.              required:
  805.  
  806.        TRIGGERED REQUEST (6)
  807.  
  808.                  A request for the responding system to send all of its
  809.                  routing database.
  810.  
  811.                  Only the first 4 octets of the packet format shown in
  812.                  figure 2 are sent, since all routing information is
  813.                  implied by this request type.
  814.  
  815.        TRIGGERED RESPONSE (7)
  816.  
  817.                  A message containing all of the sender's routing data-
  818.                  base, excluding those entries learned from the inter-
  819.                  face to which the routing information is being sent.
  820.  
  821.                  This message may be sent in response to a triggered
  822.                  request, or it may be an update message resulting from
  823.                  a change in the routing database.
  824.  
  825.                  A triggered response message MUST be sent in response
  826.                  to a triggered request message even if there are no
  827.                  routes to propagate.  This would be the case for a host
  828.                  which had a WAN interface only, but which wished to run
  829.                  the triggered update protocol.
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836. Meyer                                                          [Page 15]
  837.  
  838. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  839.  
  840.  
  841.  
  842.      0                   1                   2                   3 3
  843.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  844.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  845.      | command (1)   | version (1)   |      must be zero (2)         |
  846.      +---------------+---------------+-------------------------------+
  847.  
  848.         The following new fields are inserted for some commands
  849.  
  850.      0                   1                   2                   3 3
  851.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  852.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  853.      |    sequence number (2)        | fragment (1)  |no of frags (1)|
  854.      +-------------------------------+-------------------------------+
  855.  
  856.           Followed by up to 25 routing entries (each 20 octets)
  857.  
  858.      0                   1                   2                   3 3
  859.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  860.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  861.      | address family identifier (2) |      must be zero (2)         |
  862.      +-------------------------------+-------------------------------+
  863.      |                         IP address (4)                        |
  864.      +---------------------------------------------------------------+
  865.      |                        must be zero (4)                       |
  866.      +---------------------------------------------------------------+
  867.      |                        must be zero (4)                       |
  868.      +---------------------------------------------------------------+
  869.      |                          metric (4)                           |
  870.      +---------------------------------------------------------------+
  871.                                      .
  872.                                      .
  873.  
  874.      The format of an IP RIP datagram in octets,  with  each  tick  mark
  875.      representing one bit.    All fields are in network order.
  876.  
  877.      The four octets: sequence  number  (2),  fragment  number  (1)  and
  878.      number of fragments (1) are not present in the original RIP specif-
  879.      ication.   They are only present if command takes the values  7  or
  880.      8.
  881.  
  882.  
  883.           Figure 2.   IP Routing Information Protocol packet format
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892. Meyer                                                          [Page 16]
  893.  
  894. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  895.  
  896.  
  897.        TRIGGERED ACKNOWLEDGEMENT (8)
  898.  
  899.                  A message sent in response to every triggered response
  900.                  packet received.
  901.  
  902.                  Only the first 8 octets of the packet format shown in
  903.                  figure 2 are sent.
  904.  
  905.    VERSION   In this instance Version 1.
  906.  
  907.    SEQUENCE NUMBER
  908.  
  909.              This is a new field inserted if command takes the values 7
  910.              or 8.
  911.  
  912.              The sequence number MUST be incremented every time updated
  913.              information is sent out on a WAN.  The sequence number
  914.              wraps round at 65535.
  915.  
  916.              When a triggered acknowledgement is sent the sequence
  917.              number is set to the same value as the triggered response
  918.              packet being acknowledged.
  919.  
  920.              The sequence number MUST be identical over fragments.  If a
  921.              fragment is retransmitted the sequence number MUST not
  922.              change.
  923.  
  924.    FRAGMENT NUMBER
  925.  
  926.              The fragment number is one for the first fragment of a
  927.              routing update, and is incremented for each subsequent
  928.              fragment.  A fragment can contain up to 25 routing entries.
  929.  
  930.              When a triggered acknowledgement is sent the fragment
  931.              number is set to the same value as the triggered response
  932.              packet being acknowledged.
  933.  
  934.    NUMBER OF FRAGMENTS
  935.  
  936.              In a triggered response packet this indicates the number of
  937.              packets required to complete the routing update.
  938.  
  939.              This field has no relevance for triggered acknowledgement
  940.              packets so should be set to zero.
  941.  
  942.    For triggered response packets the rest of the datagram contains a
  943.    list of destinations, with information about each.  Each entry in
  944.    this list contains the address family identifier (2 for IP), a
  945.  
  946.  
  947.  
  948. Meyer                                                          [Page 17]
  949.  
  950. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  951.  
  952.  
  953.    destination network or host, and the metric for it.  The packet for-
  954.    mat is intended to allow RIP to carry routing information  for
  955.    several different protocols, identifiable by the family identifier.
  956.  
  957.    The IP address is the usual Internet address, stored as 4 octets in
  958.    network order.  The metric field contains a value between 1 and 15
  959.    inclusive, specifying the current metric for the destination, or the
  960.    value 16 (representing 'infinity'), which indicates that the destina-
  961.    tion is not reachable.  Each route sent by a router supersedes any
  962.    previous route to the same destination from the same router.
  963.  
  964.    The maximum datagram size is 508 octets, excluding UDP and IP
  965.    headers.
  966.  
  967. 4. IP Routing Information Protocol Version 2
  968.  
  969.    An enhancement to IP RIP to include subnetting has recently become
  970.    available [2].  This section only describes differences from that
  971.    RFC.
  972.  
  973.    The triggered update mechanism can be supported by including the
  974.    triggered request (6), triggered response (7) and triggered ack-
  975.    nowledgement (8) commands described in the previous section.
  976.  
  977.    The sequence number, fragment number and number of fragments fields
  978.    are included in triggered response and triggered acknowledgement com-
  979.    mands.
  980.  
  981.    The triggered request packet should also contain the 4 extra octets
  982.    corresponding to the sequence number, fragment number and number of
  983.    fragments fields - but set to zero.
  984.  
  985.    Because additional security information is included in RIP Version 2
  986.    packets, this MUST be appended to the triggered request and triggered
  987.    acknowledgement packets, as well as being present in the triggered
  988.    response packet.
  989.  
  990.    The version number becomes 2.  Other aspects of packet layout follow
  991.    reference [2].
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004. Meyer                                                          [Page 18]
  1005.  
  1006. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1007.  
  1008.  
  1009. 5. Netware Routing Information Protocol
  1010.  
  1011.    This section should be read in conjunction with references [3], since
  1012.    it only describes differences from the specification.
  1013.  
  1014.    Netware [3] is the trade name of Novell Research's protocols for com-
  1015.    puter communication which are derived and extended from Xerox Network
  1016.    System's (XNS) protocols [4].
  1017.  
  1018.    Netware supports a mechanism that allows routers on an internetwork
  1019.    to exchange routing information using the Routing Information Proto-
  1020.    col (RIP) which runs over the Internetwork Packet Exchange (IPX) pro-
  1021.    tocol using socket number 453h.
  1022.  
  1023.    Netware RIP and IP RIP share a common heritage, in that they are both
  1024.    based on XNS RIP, but there is some divergence, mostly at the packet
  1025.    format level to reflect the differing addressing schemes.
  1026.  
  1027.    The triggered update mechanism can be applied to Netware RIP.  To
  1028.    support the mechanism outlined in this proposal the packet format for
  1029.    Netware RIP is modified as shown in Figure 3.
  1030.  
  1031.    Every datagram contains the following:
  1032.  
  1033.    RIP OPERATION
  1034.  
  1035.              Operations supported in standard Netware RIP are: request
  1036.              (1) and response (2).
  1037.  
  1038.              The fields sequence number, fragment number and number of
  1039.              fragments MUST NOT be included in packets with these opera-
  1040.              tion values.
  1041.  
  1042.              The following new operations are required (with values
  1043.              chosen to be the same as for IP RIP commands):
  1044.  
  1045.        TRIGGERED REQUEST (6)
  1046.  
  1047.                  A request for the responding system to send all of its
  1048.                  routing database.
  1049.  
  1050.                  Only the first 2 octets of the packet format shown in
  1051.                  figure 3 are sent, since all routing information is
  1052.                  implied by this request type.
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. Meyer                                                          [Page 19]
  1061.  
  1062. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1063.  
  1064.  
  1065.  
  1066.      0                   1         1
  1067.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1068.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1069.      |       operation (2)           |
  1070.      +---------------+---------------+
  1071.  
  1072.         The following new fields are inserted for some operations
  1073.  
  1074.      0                   1                   2                   3 3
  1075.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1076.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1077.      |      sequence number (2)      | fragment (1)  |no of frags (1)|
  1078.      +-------------------------------+-------------------------------+
  1079.  
  1080.            Followed by up to 50 routing entries (each 8 octets)
  1081.  
  1082.      0                   1                   2                   3 3
  1083.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1084.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1085.      |                       network number (4)                      |
  1086.      +---------------------------------------------------------------+
  1087.      |       number of hops (2)      |      number of ticks (2)      |
  1088.      +---------------------------------------------------------------+
  1089.                                      .
  1090.                                      .
  1091.  
  1092.      The format of a Netware RIP datagram in octets, with each tick mark
  1093.      representing one bit.    All fields are in network order.
  1094.  
  1095.      The four octets: sequence  number  (2),  fragment  number  (1)  and
  1096.      number of fragments (1) are not present in the original RIP specif-
  1097.      ication.   They are only present if operation takes the values 7 or
  1098.      8.
  1099.  
  1100.  
  1101.         Figure 3.   Netware Routing Information Protocol packet format
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116. Meyer                                                          [Page 20]
  1117.  
  1118. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1119.  
  1120.  
  1121.        TRIGGERED RESPONSE (7)
  1122.  
  1123.                  A message containing all of the sender's routing data-
  1124.                  base, excluding those entries learned from the inter-
  1125.                  face to which the routing information is being sent.
  1126.  
  1127.                  This message may be sent in response to a triggered
  1128.                  request, or it may be an update message resulting from
  1129.                  a change in the routing database.
  1130.  
  1131.                  A triggered response message MUST be sent in response
  1132.                  to a triggered request message even if there are no
  1133.                  routes to propagate.  This would be the case for a host
  1134.                  which had a WAN interface only, but which wished to run
  1135.                  the triggered update protocol.
  1136.  
  1137.        TRIGGERED ACKNOWLEDGEMENT (8)
  1138.  
  1139.                  A message sent in response to every triggered response
  1140.                  packet received.
  1141.  
  1142.                  Only the first 6 octets of the packet format shown in
  1143.                  figure 3 are sent.
  1144.  
  1145.    SEQUENCE NUMBER
  1146.  
  1147.              This is a new field inserted if operation takes the values
  1148.              7 or 8.
  1149.  
  1150.              The sequence number MUST be incremented every time updated
  1151.              information is sent out on a WAN.  The sequence number
  1152.              wraps round at 65535.
  1153.  
  1154.              When a triggered acknowledgement is sent the sequence
  1155.              number is set to the same value as the triggered response
  1156.              packet being acknowledged.
  1157.  
  1158.              The sequence number MUST be identical over fragments.  If a
  1159.              fragment is retransmitted the sequence number MUST not
  1160.              change.
  1161.  
  1162.    FRAGMENT NUMBER
  1163.  
  1164.              The fragment number is one for the first fragment of a
  1165.              routing update, and is incremented for each subsequent
  1166.              fragment.  A fragment can contain up to 50 routing entries.
  1167.  
  1168.              When a triggered acknowledgement is sent the fragment
  1169.  
  1170.  
  1171.  
  1172. Meyer                                                          [Page 21]
  1173.  
  1174. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1175.  
  1176.  
  1177.              number is set to the same value as the triggered response
  1178.              packet being acknowledged.
  1179.  
  1180.    NUMBER OF FRAGMENTS
  1181.  
  1182.              In a triggered response packet this indicates the number of
  1183.              packets required to complete the routing update.
  1184.  
  1185.              This field has no relevance for triggered acknowledgement
  1186.              packets so should be set to zero.
  1187.  
  1188.    For triggered response packets the rest of the datagram contains a
  1189.    list of networks, with information about each.  Each entry in this
  1190.    list contains a destination network, and the number of hops and
  1191.    number of ticks for each.
  1192.  
  1193.    The maximum datagram size is 406 octets, excluding the IPX header (a
  1194.    further 30 octets).
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228. Meyer                                                          [Page 22]
  1229.  
  1230. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1231.  
  1232.  
  1233. 6. Netware Service Advertising Protocol
  1234.  
  1235.    This section should be read in conjunction with references [3], since
  1236.    it only describes differences from the specification.
  1237.  
  1238.    Netware [3] also supports a mechanism that allows servers on an
  1239.    internetwork to advertise their services by name and type using the
  1240.    Service Advertising Protocol (SAP) which runs over the Internetwork
  1241.    Packet Exchange (IPX) protocol using socket number 452h.
  1242.  
  1243.    SAP operates on similar principals to running RIP.  Routers act as
  1244.    SAP agents, collecting service information from different networks
  1245.    and relay it to interested parties.
  1246.  
  1247.    To support the triggered update mechanism outlined in this proposal
  1248.    the packet format for Netware SAP is modified as shown in Figure 4.
  1249.  
  1250.    Every Service Advertising Protocol datagram contains the following:
  1251.  
  1252.    SAP OPERATION
  1253.  
  1254.              Operations supported in standard Netware SAP are: general
  1255.              service query (1), general service response (2), nearest
  1256.              service query (3) and nearest service response (4).
  1257.  
  1258.              The fields sequence number, fragment number and number of
  1259.              fragments MUST NOT be included in packets with these opera-
  1260.              tion values.
  1261.  
  1262.              The following new operations are required:
  1263.  
  1264.        TRIGGERED GENERAL SERVICE QUERY (6)
  1265.  
  1266.                  A request for the responding system to send the identi-
  1267.                  ties of all servers of all types.
  1268.  
  1269.                  Only the first 2 octets of the packet format shown in
  1270.                  figure 4 are sent, since all service types are implied
  1271.                  by this request type.
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284. Meyer                                                          [Page 23]
  1285.  
  1286. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1287.  
  1288.  
  1289.  
  1290.      0                   1         1
  1291.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1292.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1293.      |       operation (2)           |
  1294.      +---------------+---------------+
  1295.  
  1296.         The following new fields are inserted for some operations
  1297.  
  1298.      0                   1                   2                   3 3
  1299.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1300.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1301.      |      sequence number (2)      | fragment (1)  |no of frags (1)|
  1302.      +-------------------------------+-------------------------------+
  1303.  
  1304.            Followed by up to 8 service entries (each 66 octets)
  1305.  
  1306.      0                   1                   2                   3 3
  1307.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1308.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1309.      |                       Service Type (4)                        |
  1310.      +---------------------------------------------------------------+
  1311.      |                       Service Name (48)                       |
  1312.      +                                                               +
  1313.                                   .
  1314.      |                            .                                  |
  1315.      +---------------------------------------------------------------+
  1316.      |                       Network Address (4)                     |
  1317.      +---------------------------------------------------------------+
  1318.      |                        Node Address (6)                       |
  1319.      +                               +-------------------------------+
  1320.      |                               |      Socket Address (2)       |
  1321.      +---------------------------------------------------------------+
  1322.      |       Hops to Server (2)      |
  1323.      +-------------------------------+
  1324.                                      .
  1325.                                      .
  1326.  
  1327.      The format of a Netware SAP datagram in octets, with each tick mark
  1328.      representing one bit.  All fields are in network order.
  1329.  
  1330.      The four octets: sequence  number  (2),  fragment  number  (1)  and
  1331.      number of fragments (1) are not present in the original SAP specif-
  1332.      ication.  They are only present if operation takes the values 7  or
  1333.      8.
  1334.  
  1335.  
  1336.         Figure 4.   Netware Service Advertising Protocol packet format
  1337.  
  1338.  
  1339.  
  1340. Meyer                                                          [Page 24]
  1341.  
  1342. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1343.  
  1344.  
  1345.        TRIGGERED GENERAL SERVICE RESPONSE (7)
  1346.  
  1347.                  A message containing all of the sender's services
  1348.                  table, excluding those entries learned from the inter-
  1349.                  face to which the service advertising information is
  1350.                  being sent out.
  1351.  
  1352.                  This message may be sent in response to a triggered
  1353.                  general service query, or it may be an update message
  1354.                  resulting from a change in the service advertising
  1355.                  database.
  1356.  
  1357.                  A triggered general service response message MUST be
  1358.                  sent in response to a triggered general request message
  1359.                  even if there are no services to advertise.  This would
  1360.                  be the case for a router with a LAN network which had
  1361.                  work stations but no servers on it.
  1362.  
  1363.        TRIGGERED GENERAL SERVICE ACKNOWLEDGEMENT (8)
  1364.  
  1365.                  A message sent in response to every triggered general
  1366.                  service response packet received.
  1367.  
  1368.                  Only the first 6 octets of the packet format shown in
  1369.                  figure 4 are sent.
  1370.  
  1371.    SEQUENCE NUMBER
  1372.  
  1373.              This is a new field inserted if operation takes the values
  1374.              7 or 8.
  1375.  
  1376.              The sequence number MUST be incremented every time updated
  1377.              information is sent out on a WAN.  The sequence number
  1378.              wraps round at 65535.
  1379.  
  1380.              When a triggered general service acknowledgement is sent
  1381.              the sequence number is set to the same value as the trig-
  1382.              gered general service response packet being acknowledged.
  1383.  
  1384.              The sequence number MUST be identical over fragments.  If a
  1385.              fragment is retransmitted the sequence number MUST not
  1386.              change.
  1387.  
  1388.    FRAGMENT NUMBER
  1389.  
  1390.              The fragment number is one for the first fragment of a
  1391.              triggered general service response update, and is incre-
  1392.              mented for each subsequent fragment.  A fragment can
  1393.  
  1394.  
  1395.  
  1396. Meyer                                                          [Page 25]
  1397.  
  1398. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1399.  
  1400.  
  1401.              contain up to 8 service entries.
  1402.  
  1403.              When a triggered general service acknowledgement is sent,
  1404.              the fragment number is set to the same value as the trig-
  1405.              gered general service response packet being acknowledged.
  1406.  
  1407.    NUMBER OF FRAGMENTS
  1408.  
  1409.              In a triggered response packet this indicates the number of
  1410.              packets required to complete the service update.
  1411.  
  1412.              This field has no relevance for triggered acknowledgement
  1413.              packets so should be set to zero.
  1414.  
  1415.    For triggered general service response packets the rest of the
  1416.    datagram contains a list of services, with information about each.
  1417.    Each entry in this list contains the service type, service name, full
  1418.    address (network, node and socket), and the number of hops to the
  1419.    server.
  1420.  
  1421.    The maximum datagram size is 534 octets, excluding the IPX header (a
  1422.    further 30 octets).
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452. Meyer                                                          [Page 26]
  1453.  
  1454. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1455.  
  1456.  
  1457. 7. Timers
  1458.  
  1459.    A number of timers are supported to handle the triggered update
  1460.    mechanism:
  1461.  
  1462.    o  Database timers.
  1463.  
  1464.    o  Retransmission timer.
  1465.  
  1466.    o  Reassembly timer.
  1467.  
  1468.    In this section appropriate timer values for IP RIP are suggested.
  1469.  
  1470.    For other routing protocols, only the database timer should need to
  1471.    take different values.  The database timer values are chosen to match
  1472.    equivalent timer operation for using the protocol on a LAN.  The
  1473.    behaviour of a routing entry when a timer is running becomes indis-
  1474.    tinguishable from a routing entry learned from a broadcast update.
  1475.  
  1476.    Implementations MAY make timer values configurable - and hence dif-
  1477.    ferent from the values suggested here - but interoperability requires
  1478.    that all timers on a sub-network should be the same in all routers.
  1479.  
  1480. 7.1 Database Timers
  1481.  
  1482.    Routes learned by a triggered response command (7) are normally con-
  1483.    sidered to be permanent - that is they do NOT time out unless
  1484.    activated by one of the following events:
  1485.  
  1486.    o  If the circuit manager indicates that a next hop router cannot be
  1487.       contacted, all routes learned from that next hop router should
  1488.       start timing out as if they had (just) been learned from a conven-
  1489.       tional response command (2).
  1490.  
  1491.       Namely each route exists while the database entry timer is running
  1492.       and is advertised on other interfaces as if still present.  The
  1493.       route is then advertised as unreachable while a further hold down
  1494.       timer is allowed to expire, at which point the entry is deleted.
  1495.  
  1496.       If the circuit manager indicates that the next hop router can be
  1497.       contacted while the database entry timer is running, the routes
  1498.       are reinstated as permanent entries.
  1499.  
  1500.       If the database entry timer has expired and the circuit manager
  1501.       indicates that the next hop router is reachable, the routing
  1502.       application MUST issue a triggered request.  The routes will be
  1503.       reinstated on the basis of any triggered response packet(s)
  1504.       received.
  1505.  
  1506.  
  1507.  
  1508. Meyer                                                          [Page 27]
  1509.  
  1510. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1511.  
  1512.  
  1513.    o  If a triggered response packet is received in which a route is
  1514.       marked unreachable, the hold down timer MUST be started and the
  1515.       entry is advertised as unreachable on other interfaces.  On expiry
  1516.       of the hold down timer the entry is deleted.
  1517.  
  1518.       If a triggered response packet is received in which an existing
  1519.       route is ABSENT, the hold down timer MUST also be started and the
  1520.       entry is advertised as unreachable on other interfaces.  On expiry
  1521.       of the hold down timer the entry is deleted.
  1522.  
  1523.    For IP RIP the hold down timer should always run for 120 seconds, to
  1524.    be consistent with RIP usage on broadcast networks.  The database
  1525.    entry timer should by default run for 180 seconds.  The network can
  1526.    be made more responsive by reducing the database entry timer value.
  1527.    However making this timer too short can lead to network instabili-
  1528.    ties.  The duration of the database entry timer allows a period of
  1529.    grace in which contention for network resources can be resolved by
  1530.    the circuit manager.
  1531.  
  1532. 7.2 Retransmission Timer
  1533.  
  1534.    The routing task runs a retransmission timer:
  1535.  
  1536.    o  When a triggered request is sent it will be retransmitted periodi-
  1537.       cally while a triggered response packet is not received.
  1538.  
  1539.    o  When a triggered response is sent a note of the sequence number
  1540.       and fragment number(s) of the routing update is kept.
  1541.  
  1542.       Fragments will be retransmitted at periodic intervals while a
  1543.       triggered acknowledgement packet is not received for the appropri-
  1544.       ate fragment.
  1545.  
  1546.    With call set up time on the WAN being of the order of a second, a
  1547.    value of 5 seconds for the retransmission timer is appropriate.
  1548.  
  1549.    If no response is received after 10 retransmissions, routes via the
  1550.    next hop router are marked as unreachable, the hold down timer MUST
  1551.    be started and the entry is advertised as unreachable on other inter-
  1552.    faces.  On expiry of the hold down timer the entry is deleted.
  1553.  
  1554.    The next hop router is then polled using a triggered request packet
  1555.    at 60 second intervals.  If a response is received the routers should
  1556.    exchange routing information using triggered response packets.
  1557.  
  1558.    It may not be desirable to poll indefinitely, since a lack of
  1559.    response (when a circuit is up) is most likely caused by incorrect
  1560.    configuration of the next hop router.  An administrator definable
  1561.  
  1562.  
  1563.  
  1564. Meyer                                                          [Page 28]
  1565.  
  1566. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1567.  
  1568.  
  1569.    number of polls (5 or greater) should be provided.
  1570.  
  1571.    If the circuit manager indicates that the next hop router is unreach-
  1572.    able, the retransmission is suppressed until the circuit manager
  1573.    indicates that the next hop router is reachable once more.  Counting
  1574.    of the number of retransmissions continues from where it left off
  1575.    prior to the circuit down indication.
  1576.  
  1577. 7.3 Reassembly Timer
  1578.  
  1579.    When a router receives a triggered response update it MUST ack-
  1580.    nowledge each fragment.  If the routing update is fragmented over
  1581.    more than one packet, the receiving router MUST store the fragments
  1582.    until ALL fragments are received.
  1583.  
  1584.    On receiving the first fragment a timer should be started.  If all
  1585.    fragments of the routing update are not received within that period
  1586.    they are discarded - and a triggered request is sent back to the ori-
  1587.    ginator (with retransmissions if necessary).  The originator MUST
  1588.    then resend ALL triggered response fragments
  1589.  
  1590.    The reassembly timer should be set to four times the value of the
  1591.    retransmission timer.  With a suggested retransmission timer value of
  1592.    5 seconds, the suggested reassembly timer value SHOULD be 20 seconds.
  1593.  
  1594.    Implementations MAY allow the reassembly timer and retransmission
  1595.    timer to be configurable (in the 1:4 ratio), but interoperability
  1596.    will be compromised on WANs where all participating routers DO NOT
  1597.    support the same values for these timers.
  1598.  
  1599.    Fragments MUST also be discarded if a new fragment with a different
  1600.    sequence number is received.  A triggered request MUST not be sent in
  1601.    this instance.
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620. Meyer                                                          [Page 29]
  1621.  
  1622. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1623.  
  1624.  
  1625. 8. Implementation Considerations
  1626.  
  1627.    In the implementation described in this memo, it is assumed that
  1628.    there is a close binding between the circuit manager and the routing
  1629.    applications - that they are in some way the same 'program'.  This is
  1630.    not necessarily true of all products which are routers.
  1631.  
  1632.    In particular there are UNIX host implementations in which the rout-
  1633.    ing application is distinct from the kernel, where the circuit
  1634.    manager is likely to be installed.  In such systems it is possible to
  1635.    stop (or crash) the routing applications independently of what is
  1636.    happening in the kernel.
  1637.  
  1638.    Other implementations might have the circuit manager on a separate
  1639.    card which again may give the circuit manager a life of its own.
  1640.  
  1641.    In implementations where the applications and circuit manager have
  1642.    independent lives, a keep-alive mechanism MUST be provided between
  1643.    the applications and the circuit manager, so that if the application
  1644.    or network layer dies and is subsequently re-started they can re-
  1645.    synchronize their state tables.
  1646.  
  1647.    Ideally when an application dies, the circuit manager should close
  1648.    all existing VCs appropriate to the application and make no further
  1649.    outgoing calls and reject incoming calls until the application is
  1650.    running again.
  1651.  
  1652.    If the circuit manager is using some form of encapsulation, several
  1653.    applications may be sharing the same VC.  If this is the case the
  1654.    circuit manager may wish to filter out datagrams for the appropriate
  1655.    network layer if only one of the applications is affected.  But this
  1656.    is not an ideal solution.
  1657.  
  1658.    Conversely if the application believes the circuit manager has died,
  1659.    it should mark all routes via the circuit manager as unreachable and
  1660.    advertise them on other interfaces for the duration of the hold down
  1661.    timer before deleting them.
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676. Meyer                                                          [Page 30]
  1677.  
  1678. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1679.  
  1680.  
  1681. 9. Security Considerations
  1682.  
  1683.    Security is provided my a number of aspects:
  1684.  
  1685.    o  The circuit manager is required to be provided with a list of phy-
  1686.       sical addresses to enable it to establish a call to the next hop
  1687.       router on an X.25 SVC or ISDN B-channel.
  1688.  
  1689.       The circuit manager SHOULD only allow incoming calls to be
  1690.       accepted from the same well defined list of routers.
  1691.  
  1692.       Elsewhere in the system there will be a set of logical address and
  1693.       physical address tuples to enable the network protocols to run
  1694.       over the correct circuit.  This may be a lookup table, or in some
  1695.       instances there may be an algorithmic conversion between the two
  1696.       addresses.
  1697.  
  1698.    o  The routing (or service advertising) task MUST be provided with a
  1699.       list of logical addresses to which triggered updates are to be
  1700.       sent on the WAN.  The list MAY be a subset of the list of next hop
  1701.       routers maintained by the circuit manager.
  1702.  
  1703.       There MAY also be a separate list of next hop routers to which
  1704.       traditional broadcasts of routing (or service advertising) updates
  1705.       should be sent.  Next hop routers omitted from either list are
  1706.       assumed to be not participating in routing (or service advertis-
  1707.       ing) updates.
  1708.  
  1709.       The list (or lists) doubles as a list of routers from which rout-
  1710.       ing updates are allowed to be received from the WAN.  Any routing
  1711.       information received from a router not in the appropriate list
  1712.       MUST be discarded.
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732. Meyer                                                          [Page 31]
  1733.  
  1734. Internet Draft     Routing over Demand Circuits - RIP           Aug 1993
  1735.  
  1736.  
  1737. References
  1738.  
  1739.  
  1740.    [1]  Hedrick. C., "Routing Information Protocol", RFC 1058, Rutgers
  1741.         University, June 1988.
  1742.  
  1743.    [2]  Malkin. G., "RIP Version 2 - Carrying Additional Information",
  1744.         RFC 1388 Draft, Xylogics, 1992.
  1745.  
  1746.    [3]  Novell Incorporated., "IPX Router Specification", Version 1.10,
  1747.         October 1992.
  1748.  
  1749.    [4]  Xerox Corporation., "Internet Transport Protocols", Xerox System
  1750.         Integration Standard XSIS 028112, December 1981.
  1751.  
  1752.    [5]  Malis. A., Robinson. D., and Ullmann. R., "Multiprotocol Inter-
  1753.         connect on X.25 and ISDN in the Packet Mode", RFC 1356, BBN Com-
  1754.         munications, Computervision Systems Integration and Process
  1755.         Software Corporation.
  1756.  
  1757. Author's  Address:
  1758.  
  1759.    Gerry Meyer
  1760.    Spider Systems
  1761.    Stanwell Street
  1762.    Edinburgh EH6 5NG
  1763.    Scotland, UK
  1764.  
  1765.    Phone: (UK) 31 554 9424
  1766.    Fax:   (UK) 31 554 0649
  1767.    Email: gerry@spider.co.uk
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788. Meyer                                                          [Page 32]
  1789.  
  1790.